Resource Allocation Graph
資源割り当てグラフ or リソース割り当てグラフ
プロセス と リソース の関係を視覚的に表現する 有向グラフ
https://scrapbox.io/files/67c9a35547812a351750244d.png
https://www.info.kindai.ac.jp/OS/reference/deadlockDetection.pdf
各 エッジ(矢印)はプロセスがどのリソースを要求または保持しているかを示す
プロセス → リソース: そのプロセスがそのリソースを要求していることを示す
リソース → プロセス: そのリソースがそのプロセスに保持されていることを示す
グラフ循環 がデッドロックを表す
すべてのリソースを保持するプロセスはグラフから取り除ける(デッドロック検出アルゴリズム)
デッドロック検出アルゴリズム
すべてのリソースを保持するプロセスは他のプロセスに依存せず、今保持しているリソースだけで終了できる
もしそのプロセスが終了すれば、そのプロセスが保持していたリソースが解放される
その後、次に終了できるプロセスを見つけて同じ手順を繰り返す
これにより、段階的にプロセスを削除していくことで、最終的にすべてのプロセスが削除できる場合はデッドロックは発生していない
OS の デッドロック を検出するために用いられる